Passed
Push — develop ( c592f3...b91919 )
by Endre
04:18
created

Application.render   A

Complexity

Conditions 1

Size

Total Lines 14
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 12
dl 0
loc 14
ccs 3
cts 3
cp 1
crap 1
rs 9.8
c 0
b 0
f 0
1
import React from 'react';
2
import ReactDOM from 'react-dom';
3
import Model from './Application/Model';
4
import Page from './Page';
5
import SideMenu, {IAdapter as ISideMenuAdapter} from './SideMenu';
6
import TopBar, {IAdapter as ITopBarAdapter} from './TopBar';
7
8
export interface IAdapter extends ITopBarAdapter, ISideMenuAdapter {
9
10
}
11
12
export interface IProperties {
13
  model: Model
14
  adapter: IAdapter
15
}
16
17
export default class Application {
18
  adapter: IAdapter;
19
  containerNode: Element | DocumentFragment | null;
20
21
  constructor(containerNode: Element | DocumentFragment | null, adapter: IAdapter) {
22 1
    this.containerNode = containerNode;
23 1
    this.adapter = adapter;
24
  }
25
26
  render(model: Model): void {
27 1
    const adapter = this.adapter;
28
29 1
    ReactDOM.render(
30
      <div className="mdc-typography">
31
        {model.styleSet.map(
32 1
          (path: string) => <link key={'stylePath_' + path} rel="stylesheet" href={path} />
33
        )}
34
        <TopBar model={model.topAppBar} adapter={adapter} />
35
        <SideMenu model={model.sideMenu} adapter={adapter} />
36
        <Page model={model.page} />
37
      </div>,
38
      this.containerNode
39
    );
40
  }
41
}
42